<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>QeePHP 应用开发权威指南</title>
<link href="css/base.css" rel="stylesheet" type="text/css">
</head>
<body>

<div id="page">


<div class="guide-section">

  <div class="guide-header">
    <span class="nav">
      <a href="http://qee13.com/app/?action=docs">文档索引</a>
      &raquo;
      <a href="index.html">QeePHP 应用开发权威指南</a>
      &raquo;
      <a href="node-model.html">模型与 ORM</a>
      &raquo;
      对相关联是什么    </span>
  </div>

  <div class="guide-section-details formatted">

    
<h1>对象关联是什么</h1>

<p>在真实的应用程序中，绝大部分对象都不是孤立的。每一个对象都会或多或少的与其他对象发生联系。</p>

<p>对象与对象的关系，在 QeePHP 中称为“对象关联”。ORM
的职责除了在数据库中存储对象，还包括在数据库中存储对象与对象间的关系。而对象关联就是一种“定义”，用来告诉
ORM 应该如何维护对象间的关系。</p>

<p>对象关联的作用是定义两个对象间的一个关系，例如“作者”和“书籍”之间的关系就是一个对象关联。</p>

<pre class="php code"><span
class="co1">// 查询指定的作者（用 Author 对象封装）</span>
<span
class="re0">$author</span> <span class="sy0">=</span> Author<span
class="sy0">::</span><span class="me2">find</span><span
class="br0">&#40;</span><span class="st_h">'name = ?'</span><span
class="sy0">,</span> <span class="re0">$name</span><span
class="br0">&#41;</span><span class="sy0">-&gt;</span><span
class="me1">get</span><span class="br0">&#40;</span><span
class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span
class="co1">// 遍历该作者的所有书籍（用 Book 对象封装），并显示书籍标题</span>
<span
class="kw1">foreach</span> <span class="br0">&#40;</span><span
class="re0">$author</span><span class="sy0">-&gt;</span><span
class="me1">books</span> <span class="kw1">as</span> <span
class="re0">$book</span><span class="br0">&#41;</span>
<span
class="br0">&#123;</span>
    <span class="kw3">echo</span> <span
class="re0">$book</span><span class="sy0">-&gt;</span><span
class="me1">title</span><span class="sy0">;</span>
<span
class="br0">&#125;</span></pre>

<p>在上面的代码中，通过 $author 对象的 $books
属性来访问该作者的所有书籍。而 $books
属性是由一个对象关联在 Book 对象上添加的映射。</p>

<div class="figure"><img src="images/model-whats-assoc-01.png" alt="" />
	<p>多个 Book 对象映射到 Author 对象的 $books 属性</p>
</div>

<h2>对相关联的组成部分</h2>

<p>一个对象关联可以看作两种模型之间的连接线，这条连接线的两端连接了模型。连接线是有方向性的，线段起点的一端被称为来源对象，而箭头所指的一端称为目标对象。</p>

<p>由下面几部分组成：</p>

<ul>
	<li>要关联的模型类型</li>

	<li></li>
</ul>

<p> </p>

<p> </p>

<p> </p>

<p>$Id: model-whats-assoc.texy 2299 2009-03-12 16:32:33Z dualface $</p>

  </div>

  <div class="guide-footer">

    <table border="0" width="100%">
      <tr>
        <td align="left" width="200">
                    &laquo;
          <a href="node-model-destroy.html">删除 Delete</a>
          
        </td>

        <td align="center">
          本章：<a href="node-model.html">模型与 ORM</a>
          <br />
          <a href="index.html">返回索引页</a>
        </td>

        <td align="right" width="200">
                    <a href="node-model-define-assoc.html">定义关联</a> 
          &raquo;
                  </td>
      </tr>
    </table>

  </div>

</div>


</div>

</body>
</html>


